package main

import (
	"fmt"
	"net"
)

func main() {
	
	fmt.Println("服务端 启动")

	listen, err := net.Listen("tcp", "127.0.0.1:6666")
	if err != nil {
		fmt.Println("服务端监听失败, err: ", err)
		return
	}

	fmt.Println("客户端连接成功, listen: ", listen)

	// 等待客户端连接
	for {
		conn, err2 := listen.Accept()
		if err2 != nil {
			fmt.Println("等待客户端连接失败, err2: ", err2)
			return
		} 
	
		fmt.Printf("等待客户端连接成功, conn: %v, 连接信息: %v \n", conn, conn.RemoteAddr().String())

		// 协程处理客户端请求
		go process(conn)
	}
	
}

func process(conn net.Conn) {
	defer conn.Close()

	// 创建一个切片，将读取数据放入切片
	buf := make([]byte, 1024)

	// 从conn读取数据
	n, err := conn.Read(buf)
	if err != nil {
		fmt.Println("读取客户端上数据失败, err: ", err)
		return
	}
	
	fmt.Println("读取客户端上数据成功, info: ", string(buf[0:n]))
}